home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 August: Tool Chest / Dev.CD Aug 00 TC Disk 2.toast / pc / sample code / networking / pgpuam / headers / oam.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-23  |  6.0 KB  |  219 lines

  1. /*
  2.      File:        OAM.h
  3.  
  4.      Contains:    OAM Client Interfaces.
  5.   
  6.      Copyright:    © 1995-1996 by Apple Computer, Inc.
  7.                  All rights reserved.
  8.  
  9. */
  10.  
  11. #ifndef __OAM__
  12. #define __OAM__
  13.  
  14. #ifndef __OAMTYPES__
  15. #include "OAMTypes.h"
  16. #endif
  17.  
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21.  
  22. #if PRAGMA_ALIGN_SUPPORTED
  23. #pragma options align=mac68k
  24. #endif
  25. /*******************************************************************************\
  26. *
  27. *    Initialization functions
  28. *    
  29. \*******************************************************************************/
  30.  
  31. OAMStatus OAMInitialize(int numSessions, int maxNumCalls, OAMBufferDescriptor* buffer_i,OAMOption* flags_i);
  32. OAMStatus OAMDeInitialize();
  33.  
  34. /*******************************************************************************\
  35. *
  36. *    Lookup functions
  37. *    
  38. \*******************************************************************************/
  39.  
  40. OSStatus OAMFindServer(OAMServerLocator *locator_i,
  41.                 OAMBufferDescriptor *buffer_o,                                
  42.                 int *numInBuffer_o,                                                     
  43.                 int *numFound_o,                                                            
  44.                 OAMOption *options);
  45.  
  46. OAMStatus OAMFindServerExtract(OAMBufferDescriptor *buffer_i, 
  47.                 int index_i, 
  48.                 OAMServerSpec* spec_o);
  49.  
  50. /*******************************************************************************\
  51. *
  52. *    Session functions
  53. *    
  54. \*******************************************************************************/
  55.  
  56. int    OAMGetSize(int numSessions, int maxNumCalls);
  57.  
  58.  
  59. OSStatus OAMGetLocalServerStatus(UInt32 *serverStatus);
  60.  
  61. enum {     kOAMOptionMemory = ' mem' };
  62. OAMStatus OAMOpenSession(OAMServerSpec* server_i,
  63.                          OAMSessionID* sessID_o,
  64.                          OAMOption *options);
  65.  
  66. OAMStatus OAMCloseSession(OAMSessionID sessID_o,
  67.                          OAMOption *options);
  68.  
  69. OAMStatus OAMAuthenticateSession(OAMSessionID sessID, 
  70.                         OAMObjectSpec* user, 
  71.                         OAMKey* key, 
  72.                         OAMOption *options);
  73.  
  74. /*******************************************************************************\
  75. *
  76. *    Object functions
  77. *    
  78. \*******************************************************************************/
  79.  
  80. OAMStatus OAMCreateObject(OAMSessionID sessID, 
  81.                         OAMObjectSpec* object, 
  82.                         OAMAttributeDescriptor *attr, 
  83.                         OAMOption *options);
  84.  
  85. OAMStatus OAMDeleteObject(OAMSessionID sessID, 
  86.                         OAMObjectSpec* object,
  87.                         OAMOption *options);
  88.  
  89. OAMStatus OAMGetAttribute(OAMSessionID sessID,
  90.                         OAMObjectSpec* object, 
  91.                         OAMAttributeDescriptor *attr, 
  92.                         OAMOption *options);
  93.  
  94. OAMStatus OAMSetAttribute(OAMSessionID sessID,
  95.                         OAMObjectSpec* key,
  96.                         OAMAttributeDescriptor *attr, 
  97.                         OAMOption *options);
  98.  
  99. OAMStatus OAMDeleteAttribute(OAMSessionID sessID,
  100.                         OAMObjectSpec* object, 
  101.                         OAMAttributeDescriptor *attr,
  102.                         OAMOption *options);
  103.  
  104. /*******************************************************************************\
  105. *
  106. *    Group functions
  107. *    
  108. \*******************************************************************************/
  109.  
  110. OAMStatus OAMIsGroupMember(OAMSessionID sessID,
  111.                         OAMObjectSpec* group,
  112.                         OAMObjectSpec* member,
  113.                         Boolean *isMember,
  114.                         OAMOption *options);
  115.  
  116. OAMStatus OAMAddGroupMember(OAMSessionID sessID,
  117.                         OAMObjectSpec* group,
  118.                         OAMObjectSpec* newMember,
  119.                         OAMOption *options);
  120.  
  121. OAMStatus OAMRemoveGroupMember(OAMSessionID sessID,
  122.                         OAMObjectSpec* group,
  123.                         OAMObjectSpec* oldMember,
  124.                         OAMOption *options);
  125.  
  126. /*******************************************************************************\
  127. *
  128. *    Iteration functions
  129. *    
  130. \*******************************************************************************/
  131.  
  132. OAMStatus OAMIterate(OAMSessionID sessID,
  133.                         OAMIterationSpec* iterSpec,
  134.                         OAMAttributeDescriptor *desc,
  135.                         OAMBufferDescriptor *buffer,
  136.                         OAMOption *options);
  137.  
  138. OAMStatus OAMParseAttributeBuffer(OAMBufferDescriptor *buffer, OAMAttributeDescriptor *desc, OAMParseInfo* parseInfo);
  139.  
  140. OAMStatus OAMParseGetNextObject(OAMParseInfo* parseInfo, OAMObjectSpec* object);
  141.  
  142. OAMStatus OAMParseGetNextAttribute(OAMParseInfo* parseInfo, OAMAttributeDescriptor* attr);
  143.  
  144.                         
  145. /*******************************************************************************\
  146. *
  147. *    Notification functions
  148. *    
  149. \*******************************************************************************/
  150.  
  151. OAMStatus OAMSetNotificationProc(OAMSessionID sessID,
  152.                         OAMNotificationUPP procPtr,
  153.                         OAMOption *options);
  154.  
  155. OAMStatus OAMRequestNotification(OAMSessionID sessionID,
  156.                         OAMNotificationSpec *notificationSpec,
  157.                         OAMOption *options);
  158.  
  159. // Remote sessions must call this on a separate thread if they want notifications
  160. // when no other calls are pending.  This call returns when OAMDeInitialize() is called.
  161. // NOTE: This call is _not_ needed locally!
  162. OAMStatus OAMBecomeHelperThread();
  163.  
  164. /*******************************************************************************\
  165. *
  166. *    Service functions
  167. *    
  168. \*******************************************************************************/
  169.  
  170. OAMStatus OAMStartService(OAMSessionID sessID, 
  171.                         OAMObjectSpec* objectSpec, 
  172.                         OAMOption *options);
  173.                         
  174. OAMStatus OAMStopService(OAMSessionID sessID, 
  175.                         OAMObjectSpec* objectSpec, 
  176.                         OAMOption *options);
  177.  
  178.  
  179. /*******************************************************************************\
  180. *
  181. *    UAM functions
  182. *    
  183. \*******************************************************************************/
  184.  
  185. enum { kOAMAuthLogin, kOAMAuthLoginContinue, kOAMAuthChangeKey, kOAMAuthChangeKeyContinue };
  186. enum { kOAMAuthStream = 1 };
  187.  
  188. typedef struct OAMAuthenticateInfo OAMAuthenticateInfo;
  189. struct OAMAuthenticateInfo {
  190.     OAMObjectSpec* objectSpec;
  191.     UInt16 flags;  
  192.     UInt16 stage;  // intialial set to zero
  193.     OAMStatus objStatus;
  194.     UInt8 uam[64];
  195.     UInt8 reserved[64];
  196. };
  197.  
  198. OAMStatus OAMAuthenticateObject(OAMSessionID sessID, 
  199.                         OAMAuthenticateInfo *authInfo, 
  200.                         OAMBufferDescriptor* input, 
  201.                         OAMBufferDescriptor* output,
  202.                         OAMOption *options);
  203.                         
  204. OAMStatus OAMChangeObjectKey(OAMSessionID sessID, 
  205.                         OAMAuthenticateInfo *authInfo, 
  206.                         OAMBufferDescriptor* input,
  207.                         OAMBufferDescriptor* output,
  208.                         OAMOption *options);
  209.  
  210. #if PRAGMA_ALIGN_SUPPORTED
  211. #pragma options align=reset
  212. #endif
  213.  
  214. #ifdef __cplusplus
  215. }
  216. #endif
  217.  
  218. #endif    /* __OAM__ */
  219.